# coding=utf-8

import psutil
# import datetime
import time

# 当前时间
now_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
print("当前时间:{}".format(now_time))

# 获取CPU物理个数
cpu_num = psutil.cpu_count(logical=False)
print("CPU物理个数:{}个".format(cpu_num))

# CPU使用率
cpu_use = (str(psutil.cpu_percent(1))) + '%'
print(u"CPU使用率:{}".format(cpu_use))

# 内存使用
# 查看内存信息,剩余内存.free  总共.total
# round()函数方法为返回浮点数x的四舍五入值。
mem_free = round(psutil.virtual_memory().free / (1024 * 1024 * 1024), 2)
print("剩余内存:{}GB".format(mem_free))
mem_total = round(psutil.virtual_memory().total / (1024 * 1024 * 1024), 2)
print("总内存:{}GB".format(mem_total))
mem_use = mem_total - mem_free
print("已用内存:{:.2f}GB".format(mem_use))
# 计算内存使用率：已用内存/总内存
mem_used = mem_use / mem_total * 100
print("内存使用率:{:.2f}%".format(mem_used))

# 磁盘使用情况
io = psutil.disk_partitions()
# print("系统磁盘信息:{}".format(str(io)))
disk_num = 0

for i in io:
    o = psutil.disk_usage(i.device)
    disk_num += 1
    print("磁盘{}总容量：{}GB".format(i.device, int(o.total / (1024 * 1024 * 1024))))
    print("磁盘{}已用容量：{}GB".format(i.device, int(o.used / (1024 * 1024 * 1024))))
    print("磁盘{}可用容量：{}GB".format(i.device, int(o.free / (1024 * 1024 * 1024))))

# 磁盘io
# rw = psutil.disk_io_counters(perdisk=False)
rw = psutil.disk_io_counters(perdisk=True)
for s in rw:
    # print(rw[s])
    rc = rw[s].read_count
    wc = rw[s].write_count
    rb = rw[s].read_bytes
    wb = rw[s].write_bytes
    rt = rw[s].read_time
    wt = rw[s].write_time
    print("磁盘{}的读IO数：{}，写IO数：{}，IO读字节数：{}，IO写字节数：{}，磁盘读时间：{}，磁盘写时间：{}".format(
        s, rc, wc, rb, wb, rt, wt))

input("输入任意键结束")